/*
 * @lc app=leetcode.cn id=376 lang=cpp
 *
 * [376] 摆动序列
 */

// @lc code=start
class Solution
{
public:
    int wiggleMaxLength(vector<int> &nums)
    {
        //找到最长摆动序列 实际上就是跳过单调上升和单调下降的序列
        int pre = 0; //前一对差值
        int cur = 0; //当前差值
        int res = 1; //因为如果只有两个 实际上是2个 但是按照上面方法只算一个 默认右边有一个
        for (int i = 0; i < nums.size() - 1; i++)
        {
            cur = nums[i + 1] - nums[i];
            if (cur > 0 && pre <= 0 || cur < 0 && pre >= 0)
            {
                //pre=0是初始情况 后序由于cur！=0 所以pre！=0
                res++;
                pre = cur;
            }
        }
        return res;
    }
};
// @lc code=end
